#ifndef HSYSTEM_H
#define HSYSTEM_H

#include <set>
#include <cstdint>
#include <boost/circular_buffer.hpp>
#define uint32 unsigned long

class ElHSys : public LegoKonverto
{
public:
  ElHSys(Signaro baseSig);
  ~ElHSys();
  wchar_t doni() override;
  void setStream(istream *s) override;
protected:
  LegoKonverto *baseSignaro_;
//  wchar_t pending_;
  boost::circular_buffer<wchar_t> buf_;
  static set<uint32> kie_ux_set;
  static set<uint32> kie_UX_set;
  uint32_t unuigi(wchar_t c1, wchar_t c2);
};

class AlHSys : public ScriboKonverto
{
public:
  AlHSys(Signaro baseSig);
  ~AlHSys();
  void meti(wchar_t) override;
  void setStream(ostream *s) override;
protected:
  ScriboKonverto *baseSignaro_;
};

#endif // HSYSTEM_H